#ifndef MUSIC_H
#define MUSIC_H
#include <QString>
#include <QUrl>
class Music
{
public:
    Music(const QUrl& url);

    void setIsLike(bool isLike);
    void setIsHistory(bool isHistory);
    void setMusicName(const QString& musicName);
    void setSingerName(const QString& singerName);
    void setAlbumName(const QString& albumName);
    void setDuration(const qint64 duration);
    void setMusicUrl(const QUrl& musicUrl);
    void setMusicId(const QString& musicId);

    bool getIsLike();
    bool getIsHistory();
    QString getMucisName();
    QString getSingerName();
    QString getAlbumName();
    qint64 getDuration();
    QUrl getMusicUrl();
    QString getMusicId();
private:
    void parseMediaMetaData();
private:
    bool isLike;    //标记音乐是否为我喜欢
    bool isHistory; //标记音乐是否为历史播放

    // 音乐的基本信息：歌曲名称，歌手名字，专辑名称，持续时长
    QString musicName;
    QString singerName;
    QString albumName;
    qint64 duration;

    // 为了标记歌曲的唯一性，给歌曲设置ID
    // 磁盘上的歌曲文件经常删除或者修改位置，导致播放时找不到文件，或者重复添加
    // 此处用musicId来维护音乐列表的音乐唯一性
    QString musicId;

    QUrl musicUrl;   //音乐在磁盘中的位置
};

#endif // MUSIC_H
